Associative memory capable of searching for data while keeping high data reliability

ABSTRACT

A CAM unit has a memory array for storing storage data, and a RAM unit has a memory array for storing the same storage data and check bits added thereto for determining whether the storage data in its memory array has an error. An error correction circuit uses the check bits to correct any error of data read from the memory array of the RAM unit and rewrite the error-corrected data to the memory arrays. Even if a soft error occurs in the storage data, the check bits can be used to correct the error in the data and rewrite the error-corrected data. Thus, a matching comparison can be performed on the storage data with high reliability.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation application of application Ser. No.11/148,320, filed Jun. 9, 2005.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a content addressable memory(associative memory, also referred to as CAM hereinafter) having anerror correction capability.

2. Description of the Background Art

Generally, the CAM is called associative memory having the capability ofreading data from a physical address like RAM (Random Access Memory) andROM (Read-Only Memory) for example as well as the capability ofsearching for data on a memory array that has the same value as that ofinput data to output the physical address of the matching data or outputa detection signal.

The CAM is used widely in such applications as address conversion forasynchronous transfer mode (ATM, and high speed IP (Internet Protocol)for example and is used versatilely in various fields.

Here, it is supposed that, in a memory array of a CAM, a bit error iscaused by a hardware failure. In this case, even if data with correctcontent is input, the input data does not match the data having the biterror. Although the memory should normally output the match result,actually a desired output cannot be obtained.

Regarding this issue, Japanese Patent Laying-Open No. 2003-316662discloses that, rewriting of data stored at an address having such a biterror is inhibited, or mask control is performed by excluding theaddress having the bit error from addresses to be searched for, so as toefficiently search for data. Thus, the CAM is required to ensure thegood quality of the device and high data reliability.

In addition to a bit error due to a hardware failure, an error couldoccur when such natural radiation as ax radiation and neutron radiationis incident on a CAM chip to generate positive hole pairs in a siliconsubstrate and thereby break data held on a storage node of a memory cellin the worst case. Such an error is generally called soft error.

It is known that, as the capacity of a storage node holding data issmaller, the resistance to soft errors is lower. Occurrences of biterrors due to soft errors result in loss of reliability of the searchresult of the CAM as described above.

If a bit error occurs in a memory array of a CAM due to any hardwarefailure as described above, measures can be taken in advance to addressthe occurrence of the error, using such methods as those disclosed inthe aforementioned publication. However, it is difficult to prepare anymeasure to address the occurrence of a bit error caused by a soft errorthat occurs in a later stage.

In particular, with the recent advances in semiconductor processtechnology, namely downsizing technology, the size of a memory cellitself has been decreasing and accordingly the capacity of a storagenode holding data has gradually been decreasing. Thus, there is atendency that the bit error rate due to soft errors increases.

SUMMARY OF THE INVENTION

The present invention has been made to solve the aforementioned problemand an object of the present invention is to provide an associativememory capable of searching for data while maintaining high datareliability, with an increased resistance to soft errors.

According to the present invention, an associative memory includes: afirst memory unit including a plurality of memory cell rows that storedata and performing a matching comparison between input search data andstorage data stored in advance correspondingly to each memory cell row;a second memory unit storing, correspondingly to each memory cell row,information that is the same as the storage data stored in the firstmemory unit and check data used for checking the storage data; and acontrol unit for determining whether the storage data has a soft errorbased on the check data stored in the second memory unit and correctingthe storage data stored in the first memory unit.

The associative memory includes, according to the present invention, inaddition to the first memory unit performing a matching comparison withstorage information, the second memory unit storing the same informationas the storage information stored in the first memory unit. Based on theinformation stored in the second memory unit, the control unit correctsa soft error of the storage information stored in the first memory unit.In this way, the associative memory of the present invention can performa matching comparison based on the storage information having highreliability.

The foregoing and other objects, features, aspects and advantages of thepresent invention will become more apparent from the following detaileddescription of the present invention when taken in conjunction with theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an entire configuration of an associative memory accordingto a first embodiment of the present invention.

FIG. 2 shows a circuit configuration of CAM memory cells arranged in amemory array according to the first embodiment of the present invention.

FIG. 3 is a timing chart illustrating a data search operation of memorycells corresponding to a search line pair described in connection withFIG. 2.

FIG. 4 conceptually illustrates information stored in the memory arrayaccording to the first embodiment of the present invention.

FIG. 5 shows a case where malfunction of a data search operation couldoccur.

FIG. 6 illustrates a control circuit including a timing adjustmentcircuit according to the first embodiment of the present invention.

FIG. 7 illustrates how the timing adjustment circuit adjusts activationtiming of a word line WL according to the first embodiment of thepresent invention.

FIG. 8 shows a circuit configuration of CAM memory cells arranged in amemory array according to a modification of the first embodiment of thepresent invention.

FIG. 9 shows an entire configuration of an associative memory accordingto a second embodiment of the present invention.

FIG. 10 shows a configuration of memory cells according to the secondembodiment of the present invention.

FIG. 11 shows a circuit configuration of CAM memory cells arranged in amemory array according to a modification of the second embodiment.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Embodiments of the present invention are hereinafter described in detailwith reference to the drawings. In the drawings, like components aredenoted by like reference characters and a description thereof is notrepeated.

First Embodiment

Referring to FIG. 1, an associative memory 1 according to an embodimentof the present invention includes a CMU of a CAM unit (hereinafter CAMCMU) chiefly for performing a matching comparison between data, i.e.,searching for data, an RMU of a RAM unit (hereinafter RAM RMU) forreading data for example, and peripheral circuitry for controlling them.Specifically, the peripheral circuitry includes a check bit additioncircuit 7, an error correction circuit 8, output buffers 9, 10, anaddress input buffer 11, an internal address counter 12, a data inputbuffer 13, a control circuit 15 for controlling the whole of associativememory 1, a cyclic reading control circuit 16 for controlling cyclicreading discussed herein later, and a selector 17.

Configuration of CAM CMU

The CAM CMU includes a memory array 2 a having memory cells arranged inrows and columns for storing storage information used for the matchingcomparison, namely for searching for data (the memory cells are alsoreferred to as CAM memory cells hereinafter), a row decoder 3 a, apriority encoder 4, a write driver/search line driver band 5 a, and amatch line amplifier 6.

Memory array 2 a includes word lines WL0-WLi-1 (i is a natural number ofat least 1) (the word lines are also referred to generally as word linesWL) as well as a plurality of match lines ML0-MLi-1 (also referred togenerally as match lines ML) arranged correspondingly to respectivememory cell rows, bit line pairs BLP0-BLPm-1 (also referred to generallyas bit line pairs BLP) arranged correspondingly to respective memorycell columns, and search line pairs SLP0-SLPm-1 (also referred togenerally as search line pairs SLP) arranged correspondingly torespective memory cell columns. In this example, an exemplaryconfiguration of memory array 2 a with i rows×m columns is described.

A bit line pair BLP includes a bit line BL and a complementary bit line/BL. A search line pair SLP includes a search line SL and acomplementary search line /SL. In FIG. 1, as representative ones, bitline BL0 and complementary bit line /BL0 of bit line pair BLP0, bit lineBLm-1 and complementary bit line /BLm-1 of bit line pair BLPm-1, searchline SL0 and complementary search line /SL0 of search line pair SLP0,and search line SLm-1 and-complementary search line /SLm-1 of searchline pair SLPm-1 are shown.

As shown in FIG. 1 memory array 2 a has i memory cell rows and i wordsW0-Wi-1 designated by succeessive addresses are stored in respectivememory cell rows. In this example, it is supposed that word W0corresponds to the least significant address and word Wi-1 correspondsto the most significant address.

Row decoder 3 a selects (accesses) at least one of a plurality of wordlines WL0-WLi-1 according to an input address.

Write driver/search line driver band 5 a receives write data that isinput in a data write operation to transmit, to each of a plurality ofbit line pairs BLP, a signal of a predetermined logic level according tothe write data. Further, receiving input search data that is input in adata search operation, write driver/search line driver band 5 atransmits, to each of a plurality of search line pairs SLP, a signal ofa predetermined logic level according to the input search data. In thisexample, it is supposed that, in the data write operation, data arewritten in parallel to memory cells of a memory cell row correspondingto select word W. It is further supposed that, in the data searchoperation, a matching comparison is performed on all words W (all memorycell rows) stored in the memory array.

Match line amplifier 6 amplifies a match signal transmitted to each ofmatch lines ML0-MLi-1 in the data search operation to output theamplified signal to priority encoder 4. Based on the match signaltransmitted from match line amplifier 6 in the data search operation,priority encoder 4 generates the most significant address of thematching memory cell row and outputs the address.

Output buffer 10 buffers and outputs an address ADD that is output frompriority encoder in the data search operation.

Configuration of CAM Memory Cell

Referring to FIG. 2, CAM memory cells CAMC (also referred to simply asmemory cells CAMC hereinafter) are arranged in memory array 2 aaccording to the first embodiment of the present invention. Here, twomemory cells CAMC corresponding to bit line pairs BLP0 and BLPm-1 areprovided. Since memory cells CAMC are similar to each other inconfiguration, the configuration of memory cell CAMC corresponding tobit line pair BLP0 is described as a representative one.

Memory cell CAMC includes a memory cell unit MCU, gate transistors GT,/GT and a comparison unit 98.

Memory cell unit MCU includes transistors 94-97. It is supposed herethat transistors 94, 95 are N-channel MOS transistors and transistors96, 97 are P-channel MOS transistors. Transistor 96 is provided betweena node Np supplied with a power supply voltage VCC and a sense node SNand has its gate electrically coupled to a sense node /SN. Transistor 97is provided between node Np supplied with power supply voltage VCC andsense node /SN and has its gate electrically coupled to sense node SN.Transistor 94 is provided between sense node SN and a node Nq suppliedwith a ground voltage GND and has its gate electrically coupled to sensenode/SN. Transistor 95 is provided between sense node /SN and node Nqsupplied with ground voltage GND and has its gate electrically coupledto sense node SN. Memory cell unit MCU composed of transistors 94-96 isa so-called cross-coupled SRAM cell (static memory cell) that holdsstorage data by setting one of sense nodes SN and /SN at logical “H”level and setting the other at logical “L” level.

In this example, it is supposed that the setting of sense nodes SN and/SN at “L” level and “H level respectively corresponds to storage data“0”, and the setting of sense nodes SN and /SN at “H” level and “L”level respectively corresponds to storage data “1”. Here, the settingsfor storage data “0” and “1” may be reversed.

Gate transistor GT is provided between bit line BL0 and sense node SNand has its gate electrically coupled to corresponding word line WL.Gate transistor /GT is provided between sense node /SN and bit line /BL0and has its gate electrically coupled to corresponding word line WL.

Comparison unit 98 makes a matching comparison between storage datastored in memory cell unit MCU and input search data. Comparison unit 98includes transistors 90-93. It is supposed here that transistor 90-93are N-channel M0S transistors.

Transistors 90 and 92 are connected in series between node Nq suppliedwith ground voltage GND and corresponding match line ML and haverespective gates electrically coupled to sense node SN and search lineSL0 respectively. Transistors 91 and 93 are connected in series betweennode Nq supplied with ground voltage GND and corresponding match line NMand have respective gates electrically coupled to sense node /SN andsearch line /SL0 respectively. As described above, since memory cellunit MCU is equivalent to a so-called cross-coupled SRAM cell, adetailed description of the operations of reading and writing data isnot provided here. The SRAM cell serves as a flip-flop circuit that setsone and the other of the two sense nodes at different voltage levelsrespectively according to data to be stored.

Bit line pair BLP provided correspondingly to memory cell CAMC is usedin the data write operation. Search line pair SLP is used in the datasearch operation.

Data Search Operation

Using the timing chart in FIG. 3, a data search operation of memory cellCAMC corresponding to search line pair SLP0 is described. It is supposedhere that internal circuitry operates in synchronization with a clocksignal CLK and the description is given accordingly. Further, it issupposed that memory cell CAMC stores storage data “0”. For the sake ofsimplicity, the description is given here assuming that input searchdata SDT of one-bit data is input.

At time T0 in synchronization with a rise of the clock signal, data istransmitted to search line pair SLP0 according to input search data SDT(“1”). Specifically, search line SL0 and complementary search line /SL0are set respectively at “H” level and “L” level. In response to this, ina comparison unit 98 of memory cell CAMC, transistor 92 is turned on.Since memory cell CAMC stores storage data “0”, sense nodes SN and /SNare set respectively at “L” level and “H” level. Accordingly, incomparison unit 98, in response to the voltage level of sense node /SN,transistor 90 is turned on. Accordingly, in comparison unit 98, both ofseries-connected transistors 90 and 92 are turned on to electricallycouple match line ML and node Nq supplied with ground voltage GND. Thus,the voltage level of match line ML is pulled down by ground voltage GNDfrom a predetermined, precharge voltage level (“H” level). In this case,therefore, it is determined that the one-bit storage data stored inmemory cell CAMC does not match the input search data and the searchresult is thus “miss” or mismatch.

Then, at time T1 after the search result is obtained, a control signal/MLPRC for precharging match line ML is set at “L” level. Accordingly, aprecharge circuit (not shown) is activated by receiving control signal/MLPRC (“L” level) to precharge match line ML to the predeterminedvoltage level (“H”). In this way, a preparation for the following datasearch operation is finished.

Then, at time T2 in synchronization with a rise of the clock signal,data is transmitted to search line pair SLP0 according to input searchdata (“0”). Specifically, search line SL0 and complementary search line/SL0 are set respectively at “L” level and “H” level. In response tothis, in comparison unit 98 of memory cell CAMC, transistor 93 is turnedon. As described above, since memory cell CAMC stores storage data “0”,transistor 90 in comparison unit 98 is turned on. Thus, in comparisonunit 98, match line ML and node Nq supplied with ground voltage GND arenot electrically coupled to each other. Accordingly, the voltage levelof match line ML is kept at the predetermined voltage level (“H” level).Thus, in this case, it is determined that the storage data stored inmemory cell CAMC and the input search data match and, the search resultis “hit” or match. After time T3, in synchronization with subsequentrises of clock signal CLK, the data search operation is similarlycarried out in response to input of input search data.

Actually, in addition to the comparison for the single memory cell,namely the one-bit data, similar operations are performed in parallel onmemory cells of a memory cell row to set the voltage level of match lineML. Specifically, when comparison units 98 of all memory cells CAMC ofthe memory cell row do not electrically couple. corresponding match lineML and ground voltage GND, corresponding match line ML is kept at thepredetermined voltage level (“H” level). In other words, it can bedetermined that the input search data and the storage data stored ineach memory cell CAMC of a predetermined memory cell row match.

In contrast, when at least one of comparison units 98 of memory cellsCAMC included in the memory cell row electrically couples correspondingmatch line ML and ground voltage GND, corresponding match line ML is setat the voltage level of ground voltage GND (“L” level). In other words,it is determined that the input search data and the storage data storedin each memory cell CAMC of the predetermined memory cell row do notmatch. Operations similar to this are performed in parallel onrespective memory cell rows. The voltage level set at match linesML0-MLi-1 each is used as a match signal and amplified by match lineamplifier 3 to be input to priority encoder 4.

Receiving the match signal transmitted from each of a plurality of matchlines ML0-MLi-1, priority encoder 4 generates the most significantaddress of the matching memory cell row and outputs the address.

Configuration of RAM RMU

Referring again to FIG. 1, a configuration of the RAM RMU is described.

According to the present invention, information that is the same (samenumber of words) as the storage information stored in memory array 2 aof the CAM CMU is stored in the RAM RMU and check information forperforming an error correction which is described herein later is alsostored in the RAM RMU.

The RAM RMU includes a memory array 2 b having memory cells (alsoreferred to as RAM memory cells hereinafter) arranged in rows andcolumns, a row decoder 3 b and a sense amplifier/write driver band 5 b.

The RAM memory cells arranged in memory array 2 b each correspond to theCAM cell described in connection with FIG. 2 from which comparison unit98 and search line pair SLP are removed, namely correspond to an SRAMcell having only a memory cell unit MCU. This memory array 2 b has theconfiguration of i lines×(m+n) columns. Word lines WL and bit line pairsBLP are similar in configuration to those of memory array 2 a describedabove and the detailed description is not repeated here.

Row decoder 3 b activates a predetermined word line WL according to aninput address. Sense amplifier/write driver band 5 b amplifies a datasignal that is transmitted through bit line pair BLP in a data readoperation and outputs the amplified data signal to error correctioncircuit 8. In a data write operation, sense amplifier/write driver band5 b transmits to bit line pair BLP a data signal of a predeterminedlogic level according to write data.

Configuration of Peripheral Circuitry

Control circuit 15 receives an external command CMD for controlling thewhole of the associative memory to generate and output various controlsignals for instructing internal circuits to execute predeterminedoperations.

Cyclic reading control circuit 16 is activated in response to anactivation signal CRE (“H” level) to generate a count-up signal CY thatis a periodic signal and output the signal to internal address counter12.

Address input buffer 11 receives an address ADD input thereto to bufferand output the address to selector 17. Internal address counter 12generates therein an address to output the generated address.Specifically, in response to count-up signal CY which is a periodicsignal, internal address counter 12 successively increments an addressto output the address to selector 17. Selector 17 selects one of theaddress from address input buffer 11 and the address from internaladdress counter 12 according to a control signal SEL to output theselected one to row decoders 3 a and 3 b. Specifically, in a normal dataread operation and a normal data write operation, selector 17 outputsthe address from address input buffer 11 to row decoders 3 a and 3 b inresponse to control signal SEL (“H” level). In a cyclic read operationdescribed herein later, selector 17 outputs the address from internaladdress counter 12 to row decoders 3 a and 3 b in response to controlsignal SEL (“L” level). Here, the logic level of control signal SEL maybe reversed for these operations.

Data input buffer 13 buffers write data WDT or input search data SDTwhich is used for data search. Write data WDT is output to check bitaddition circuit 7 and to a write driver band of write driver/searchline driver band 5 a and input search data SDT is output to a searchline driver band of write driver/search line driver band 5 a.

Check bit addition circuit 7 receives write data WDT from data inputbuffer 13, adds predetermined check bits used for an error correctiondescribed herein later, and outputs the data, for writing it to the RAMRMU, to the write driver band of sense amplifier/write driver band 5 bof the RAM RMU.

Error correction circuit 8 receives read data that is output from asense amplifier band of sense amplifier/write drier band 5 b of the RAMRMU, performs an error correction and outputs the data to output buffer9, write driver/search line driver band 5 a of the CAM CMU and check bitaddition circuit 7.

Data Writing of Words W Constituting Storage Information

Data writing of words W constituting storage information before the datasearch operation is started is described.

In this case, when a certain word W is written at a predeterminedaddress of memory array 2 a of the CAM CMU, simultaneously the same dataof the word W is also written, at the same address position as memoryarray 2 a of the CAM CMU, in memory array 2 b of the RAM RMU. In otherwords, word W written in memory arrays 2 a and 2 b is stored in both ofthe CAM CMU and the RAM RMU.

With reference to FIG. 4, information stored in memory array 2 b in thisembodiment of the invention is described. It is supposed here that writedata IWDT shown here refers to write data WDT buffered by data inputbuffer 13 and read data IRDT refers to read data RDT before beingbuffered that is to be output from output buffer 9.

Write data IWDT of m-bit word W is input to check bit addition circuit7. Check bit addition circuit 7 adds, as check bits used for the errorcorrection, n bits to write data IWDT. The resultant data is written tomemory array 2 b as write data of (m+n) bits at the same addressposition as the word W written in memory array 2 a of the CAM CMU.

Similarly, check bit addition circuit 7 adds n bits as check bits to allwords W and outputs the resultant words as write data IWDT.

Data Reading of Words W Constituting Storage Information

Generally, for an associative memory, a data search operation isperformed to output a matching address. Therefore, a data read operationof words stored in the memory is rarely carried out. However, the dataread operation is performed in order to check for example the datastored in the memory, in response to an instruction from control circuit15. In this case, since the present embodiment writes the same words Win both of the CAM CMU and the RAM RMU as described above, data is readfrom one of them, namely from the RAM RMU and the data is output to theoutside through error correction circuit 8.

Specifically, in the data read operation, (m+n) bits are read as readdata of word W from the RAM RMU according to an input address and theread data is output to error correction circuit 8.

Error correction circuit 8 performs an error correcting operation usingsuch an error correction code as so-called Hamming code.

In the error correcting operation, when the n bits of the check bits areused to detect a bit error in the normal m-bit data, the bit error isspecified and an error correction is made, for example, the error bit isinverted to output m-bit read data IRDT. Read data IRDT that is readfrom the RAM RMU is output through output buffer 9 as m-bit read dataRDT.

When an error correction is made using the Hamming code, it is necessaryfor check bit addition circuit 7 to define Hamming-coded check bits. Thebit number of the check bits is determined so that the relation 2^(n)-m≧m+1 is satisfied by the normal m-bit data and the n-bit checkbits. Hamming coding is performed through calculation. based on apredetermined exclusive OR (syndrome tree) for data of each bit of thenormal m bits to define the n-bit check bits. Check bit addition circuit7 adds the n-bit check bits to the normal m bits to output the resultantbits. The combination of the check bits represents positionalinformation for specifying where an error, namely a bit error occurs. Aso-called syndrome is calculated. When data is read, error correctioncircuit 8 receives the n-bit check bits to calculate this syndrome.Based on the result of the calculation, a table specifying the positionof the error bit is referred to and the data is changed. This generalHamming coding theory is described for example in “IndustrialMathematics for Restudy”, CQ Publishing Co., Ltd., pp. 47-53. Here, theerror correction of the present invention can also use a parity codeinstead of the Hamming code and naturally, an error correction based onany of other coding theories is also applicable.

Regarding the data search operation, the data search operation isperformed on the CAM CMU as the conventional art.

In the present embodiment, in parallel with the data search operationperformed on the CAM CMU, the data read operation is performed on theRAM RMU repeatedly. The repeatedly performed data read operation is alsoreferred to as cyclic reading hereinafter and a series of operations isdescribed below.

Control circuit 15 receives a cyclic reading command to activateactivation signal CRE (“H” level) and sets control signal SEL at “L”level.

Cyclic reading control circuit 16 is activated in response to activationsignal CRE (“H” level) to output count-up signal CY that is a periodicsignal to internal address counter 12.

Internal address counter 12 generates an address through increment insynchronization with count-up signal CY, and selector 17 outputs theaddress of internal address counter 12 according to control signal SEL(“L” level) to row decoders 3 a and 3 b.

Accordingly, from the RAM RMU using addresses generated insynchronization with count-up signal CY and changed sequentially one byone, data is read.

As described above, read data thats is read from the RAM RMU is input toerror correction circuit 8. On the data read from the RAM RMU, errorcorrection circuit 8 performs an error correction using the check bitsdescribed above.

The error-corrected data is input again as rewrite data to the RAM RMUand the CAM CMU and a data write operation is performed on a memory cellrow according to an input address to row decoders 3 a and 3 b.

This cyclic reading is executed for enhancement of the resistance tosoft errors, namely for data maintenance (data repair) and does notoutput the read data. In other words, in operation, the error correctingoperation is constantly performed in the RAM RMU and the CAM CMU so thatany bit error occurring due to a soft error can be repaired in aconsiderably short period of time. When a normal data read operation,not the cyclic reading, for the purpose of checking for example data isperformed, control circuit 15 receiving a command to execute the normaldata reading temporarily stops the cyclic reading. Specifically,activation signal CRE for activating cyclic reading control circuit 16is inactivated (“L” level). Accordingly, count-up signal CY that is aperiodic signal from cyclic reading control circuit 16 is blocked. Then,the generation of addresses by internal address counter 12 isinterrupted. Further, when the normal data reading is performed, controlcircuit 15 sets control signal SEL at “H” level. Specifically, asdescribed above, selector 17 outputs an address from address inputbuffer 11 to row decoders 3 a and 3 b. After the data read operation forchecking data for example is done and read data RDT is output fromoutput buffer 9, in response to an instruction from control circuit 15according to input of a cyclic reading command, activation signal CRE isagain set at “H” level so that control signal SEL is set at “L” level tocancel the interruption of the address generation by internal addresscounter 12 and the cyclic reading is continued again.

With this configuration, the resistance to soft error can beenhanced,the reliability of storage information stored in theassociative memory can be improved and accordingly the operation ofsearching for data can be executed.

Timing Adjustment of Data Rewrite in CAM CMU

In a data search operation, for data maintenance (data repair) of theCAM CMU, it is necessary to activate word line WL of memory cells in theCAM CMU because rewrite to the CAM CMU is performed.

In this case, if word line WL is activated and thereafter a voltagelevel according to write data is transmitted through error correctioncircuit 8 to bit line pair BLP, sense nodes SN, /SN are electricallycoupled in the state in which data on bit line pair BLP has not beenconfirmed, as shown in FIG. 5. Thus, the potential levels of sense nodesSN, /SN change at time T11. If the data search has been conducted sincetime T10, malfunction of the potential level of search line SL couldoccur, namely the data search could malfunction.

With reference to FIG. 6, control circuit 15 including a timingadjustment circuit 14 is described according to the first embodiment ofthe present invention.

In the a data write operation of the CAM CMU, timing adjustment circuit14 of the first embodiment of the invention adjusts the timing at whichthe word driver band and a word driver (not shown) in row decoder 3 aare activated. Specifically, when a rewrite enable signal RWE or writesignal WE is input, the output timing of a write driver activationsignal WDE and a row decoder activation signal RDE is adjusted.

Referring to FIG. 6, control circuit 15 includes a timer 20, a commanddecoder 21, an OR circuit OR1, a buffer BFc, and a SEL signal generationcircuit 22. Timing adjustment circuit 14 includes an OR circuit OR2, anAND circuit AD, delay circuits PLa, PLb, and buffers BFa, BFb.

Timer 20 is activated in response to activation signal CRE. Receivingclock signal CLK, timer 20 generates and outputs rewrite enable signalRWE at predetermined intervals. Receiving command CMD defining anoperation of associative memory 1 in synchronization with clock signalCLK, command decoder 21 generates control signals for example forissuing an instruction to each internal circuit. For example, commanddecoder 21 receives command CMD defining a data write operation togenerate write enable signal WE. Further, command decoder 21 receivescommand CMD defining a data search operation to generate and output asearch driver activation signal SDE through buffer BFc. Furthermore,command decoder 21 receives command CMD defining a cyclic read operationto generate activation signal CRE.

According to an instruction from command decoder 21, SEL signalgeneration circuit 22 generates control signal SEL. Specifically, inresponse to input of command CMD for normal data reading, SEL signalgeneration circuit 22 sets control signal SEL at “H” level according tothe instruction from command decoder 21. In response to input of commandCMD for cyclic reading, SEL signal generation circuit 22 sets controlsignal SEL at “L” level according to the instruction from commanddecoder 21.

In response to input of rewrite enable signal RWE and write enablesignal WE, OR circuit OR1 outputs to timing adjustment circuit 14 writesignal IWE that is the result of an OR logical operation.

In timing adjustment circuit 14, AND circuit AD receives write signalIWE and delayed write signal IWE through delay circuit PLa, performs anAND logical operation thereon and outputs the result as row decoderactivation signal RDE through buffer BFa. OR circuit OR2 receives writesignal IWE and delayed write signal IWE through delay circuit PLb,performs an OR logical operation thereon and outputs the result as writedriver activation signal WDE through buffer BFb.

With reference to FIG. 7, how timing adjustment circuit 14 in the firstembodiment of the present invention adjusts the activation timing ofword line WL is described.

As shown in FIG. 7, at time T20, in response to input of write signalIWE, write driver activation signal WDE rises to “H” level, namely thewrite driver band is activated. Accordingly, a voltage level accordingto input search data is transmitted to bit line pair BLP Row decoderactivation signal RDE rises to “H” level at time T21 at which delay timeAd of delay circuit PLa has passed. Thus, the word driver of row decoder3 a is activated to activate a desired word line WL according to aninput address. At this time, the data level of bit line pair BLP isconfirmed. Therefore, if the data does not particularly has a softerror, sense nodes SN and /SN are maintained in a stable state.Therefore, in the parallel data search operation, no malfunction occurs.At time T22 at which write signal IWE falls, row decoder activationsignal RDE falls to “L” level. At time T23 at which delay time Bd ofdelay circuit PLb has passed, write driver activation signal WDE fallsto “L” level. The number of delay stages (not shown) for example may bechanged for adjusting the time period of delay Ad of delay circuit PLato make further adjustments of the activation timing of word line WL.

Thus, the timing adjustment circuit of the present embodiment can beprovided to conduct a data search more reliably without occurrence ofmalfunction.

Since the above-described CAM memory cells are employed, search linepair SLP and bit line pair BLP are separately provided. Therefore, evenif a rewrite operation and a data search operation are performedsimultaneously, there is no influence on the data search operation. Inother words, the data maintenance with this configuration is completelytransparent to the data search operation so that the efficiency of thesearch performance does not deteriorate even if this configuration isemployed.

In the following, cases where soft errors could occur are described.

There could be a case in which a soft error occurs in the CAM CMU, acase in which a soft error occurs in the RAM RMU and a case in whichsoft errors occur in both of the CAM CMU and the RAM RMU.

In the case where the CAM CMU has a soft error, a normal data searchoperation of the CAM CMU cannot be ensured temporarily. However, sincethe same word W as that of the CAM CMU having the soft error is held inthe RAM RMU at the same address, error maintenance is executed throughthe cyclic reading and the error correction as described above as wellas rewrite to the CAM CMU. Accordingly, a normal data search operationcan be ensured in a short period of time.

In the case where the RAM RMU has a soft error, a normal data searchoperation of the CAM CMU is ensured all the time. For the RAM RMU havingthe soft error, through the cyclic reading and the error correction asdescribed above as well as rewrite to the CAM CMU, data maintenance isperformed. Thus, the data in the RAM RMU is repaired in a short periodof time.

In, the case where both of the CAM CMU and the RAM RMU have soft errors,a normal data search operation of the CAM CMU cannot be ensuredtemporarily. However, through the cyclic reading, the error correctionas described above and rewrite to the CAM CMU and the RAM RMU, datamaintenance is performed. Thus, a normal data search operation can beensured in a short period of time.

It is noted that, regarding the error correction, data maintenancecannot be performed if an error of two or more bits occurs. As for alarge-capacity CAM, even if several ten-thousands words are storedwithin a chip, the cyclic reading and error correction are regularlyperformed. Therefore, after a soft error of one bit of word W in the RAMRMU occurs and before the cyclic reading and error correction areperformed, there is an extremely low probability of occurrence of a softerror of another bit of the same word W having the soft error, among theten-thousands words.

Modification of the First Embodiment

In connection with the first embodiment discussed above, the descriptionis given concerning how the resistance to soft errors is improved of theassociative memory using SRAM cells as memory cells of memory arrays 2 aand 2 b in the CAM CMU and the RAM RMU. Instead of the SRAM cells, DRAMcells (dynamic memory cells) may also be used as CAM memory cells.

Referring to FIG. 8 showing CAM memory cells CAMCa (also referred tosimply as memory cells CAMCa hereinafter) arranged in a memory array 2 aaccording to a modification of the first embodiment of the presentinvention, two memory cells CAMCa are provided correspondingly to bitline pair BLP0 and BLPm-1. Since the memory cells CAMCa are identical inconfiguration, memory cell CAMCa corresponding to bit line pair BLP0 isdescribed here as a representative one.

Memory cell CAMCa includes memory cell units MCU1, /MCU1 and acomparison unit 98.

Memory cell units MCU1, /MCU1 include gate transistors GT, /GT andcapacitor cells C1, /C1 (also referred to generally as capacitor cell Chereinafter). It is supposed here that gate transistors GT, /GT areN-channel MOS transistors. Gate transistor GT is provided between bitline BL0 and sense node SN1 and has its gate electrically coupled toword line WL. Gate transistor /GT is provided between bit line /BL0 andsense node SN2 and has its gate electrically coupled to word line WL.Capacitor cell C1 is provided between sense node SN1 and a power supplynode supplied with a predetermined voltage Vcp. Capacitor cell /C1 isprovided between sense node SN2 and the power supply node supplied withthe predetermined voltage Vcp.

Comparison unit 98 is similar in configuration to the one described inconnection with FIG. 2 and its circuit operation in a data searchoperation is also similar. Thus, the detailed description thereof is notrepeated here. It should be noted that respective gates of transistors90 and 91 of comparison unit 98 are electrically connected to respectivesense nodes SN2 and SN1. In memory cell units MCU1 and MCU2, one ofsense nodes SN1 and SN2 is set at “H” level and the other thereof is setat “L” level to hold storage data.

Memory cell units MCU1 and MCU2 are memory cells composed of gatetransistors GT and capacitor cells C, namely so-called DRAM cells. Asseen from a comparison with the SRAM cells described above in connectionwith FIG. 2, the DRAM cell has a smaller number of components,transistors for example, than that of the SRAM cell and accordingly theCAM memory cell can be formed by the DRAM cell with a considerablysmaller area as compared with the SRAM cell. In other words, the DRAMcell is highly advantageous in terms of increase in of integration.

Thus, CAM memory cells CAMCa of the modification of the first embodimentcan be used to constitute an associative memory with a remarkablyreduced chip area as compared with an associative memory constituted ofSRAM-cells.

Since the DRAM cell holds storage data on sense node SN using electriccharge of capacitor cell C, the storage data has to be rewrittenperiodically, namely refreshed, for keeping the data. Thus, while a datasearch is being conducted, the refresh operation may have to beperformed. This could deteriorate data search performance. However,according to the present invention, the RAM RMU is constantly refreshedby the cyclic reading and thus a refresh operation by input of aso-called refresh command from any external unit is unnecessary.Further, for the CAM CMU as well, the data maintenance is done throughthe cyclic reading as well and the data is rewritten, and thus anexternally conducted refresh operation is unnecessary. As described inconnection with the first embodiment, the data maintenance of the DRAMcells is also transparent to the data search operation.

In this way, with the configuration described here, the chip area can bereduced and higher data reliability can be ensured without deteriorationin search performance.

Second Embodiment

Referring to FIG. 9 showing an associative memory 1# according to asecond embodiment of the present invention, a difference betweenassociative memory 1# and associative memory 1 in FIG. 1 described aboveis that a CAM CMU# and a RAM RMU# are used instead of the CAM CMU andthe RAM RMU respectively. Specifically, in the CAM CMU# and the RAMRMU#, memory arrays 2#a and 2#b are used instead of memory arrays 2 aand 2 b. Regarding other features, the associative memories areidentical and the detailed description thereof is not repeated here.

Specifically, in memory array 2#a, memory cells CAMC# arranged thereinare used instead of memory cells CAMC. Accordingly, the number of bitsof memory array 2#b is adjusted. Memory cells CAMC# are so-called TCAMcells.

In FIG. 9, bit line pairs BLLP0, BLRP0, BLLPm-1, BLRPm-1 are shown asrepresentative ones and search line pairs SLP0, SLPm-1 are also shown.

Referring to FIG. 10, memory cell CAMC# in the second embodimentincludes two memory cell units MCUa, MCUb, a comparison unit 98 and gatetransistors GTL, /GTL, GTR, /GTR.

Memory cell unit MCUa corresponds to bit line pair BLLP. Memory cellunit MCUb corresponds to bit line pair BLRP. Since memory cell unitsMCUa and MCUb are equivalent in circuit configuration to memory cellunit MCU described in connection with the first embodiment, the detaileddescription thereof is not repeated here. As described above, each ofmemory cell units MCUa and MCUb serves as a flip-flop circuit settingone of the two sense nodes and the other thereof at different voltagelevels according to data to be stored.

Gate transistor GTL is provided between sense node SNL of memory cellunit MCUa and bit line BLL of bit line pair BLLP and has its gateelectrically connected to word line WL. Gate transistor /GTL is providedbetween sense node /SNL of memory cell unit MCUa and complementary bitline /BLL and has its gate electrically coupled to word line WL. Gatetransistor GTR is provided between sense node SNR of memory cell unitMCUb and bit line BLR of bit line pair BLRP and has its gateelectrically coupled to word line WL. Gate transistor /GTR is providedbetween sense node /SNR and complementary bit line /BLR of bit line pairBLRP and has its gate electrically coupled to word line WL.

Comparison unit 98 receives a pair of data corresponding to respectivevoltage levels of sense node /SNL of memory cell unit MCUa and sensenode SNR of memory cell unit MCUb and receives input search datatransmitted to search line pair SLP to transmit a signal based on theresult of the comparison to match line ML.

Since comparison unit 98 is similar in configuration to the one in FIG.2 described above, the detailed description thereof is not repeatedhere. It should be noted that respective gates of transistors 90 and 91of comparison unit 98 are electrically coupled to sense node /SNL ofmemory cell unit MCUa and sense node SNR of memory cell unit MCUb.

Since the memory cells-arranged in memory array 2#b are similar inconfiguration to memory cells CAMC# except for search line pair SLP andcomparison unit 98 of above-described memory cell CAMC#, the detaileddescription thereof is not repeated here.

In the above-described configuration, memory array 2#a includes memorycell units MCU of i rows×2m columns and memory array 2#b includes memorycell units MCU of i rows×(2m+n) columns. The number of bits of inputsearch data SDT that is input in a data search operation is m (m bits).

A difference between the CAM and the TCAM is whether their memory cellsare binary storage or ternary storage. The memory cell of the TCAMstores three states: “0 ”, “1” and “X (don't care)”.

It is assumed here that memory cell CAMC# stores data “0”. In thisexample, in the storage state of data “0”, sense node /SNL is set at “H”level and sense node SNR is set at “L” level.

It is supposed that a data search operation is performed and data “0” isinput to search line pair SLP. In this example, search line SL is set at“L” level and complementary search line /SL is set at “H” level.

In this case, in comparison unit 98, transistors 90 and 93 are turnedon. However, match line ML is not electrically coupled to ground voltageGND so that match line ML maintains the voltage level of power supplyvoltage VCC. As described above, in this case, the input storage dataand the storage data hit (match).

In contrast, it is supposed that data “1” is input to search line pairSLP. In this example, search line SL is set at “H” level andcomplementary search line /SL is set at “L” level.

In this case, in comparison circuit 98, transistors 90 and 92 are turnedon and accordingly match line ML and node Ng are electrically coupled.Namely, the voltage level of match line ML is pulled down by groundvoltage GND. As described above, in this case, the input search data andthe storage data miss (mismatch).

Thus, in memory cell CAMC#, the search operation can be performedsimilarly to CAM memory cell CAMC.

Further, memory cell CAMC# stores another state “X (don't care)”. Inthis storage state, both of sense node /SNL and sense node SNR are setat “L” level.

When a data search operation is executed, since sense node /SNL andsense node SNR are both at “L” level, transistors 92 and 93 ofcomparison unit 98 are both in a turned-off state. Thus, in both of thecases where data “0” is input and data “1” is input to search line pairSLP, ground voltage GND and match line ML are not electrically connectedso that the result of the comparison is always “hit”. Memory cell CAMC#can thus store the “X” state that is always “hit”.

Storage data from which storage information is composed and which is acombination of ternary data bits is especially advantageous when anyoperation is performed on IP (internet protocol) packets in a networksystem. For example, for the sake of simplicity, it is assumed here thata destination address of a packet is represented by 4 bits. Here, it isfurther assumed that the destination address of a certain packet is“1XXX” (on the condition that the leading bit is “1”, the remainingaddress bits may have any values) and a predetermined operation isperformed on the packet. An associative storage memory of the CAM orTCAM is used to search for, when the packet arrives at the system, thedestination address of the packet to determine whether the address matchaddress “1XXX”.

In this case, it is necessary, before the arrival of the packet, data of“1XXX” is stored in the CAM or TCAM. When the CAM of the normal binarystorage is employed, it is necessary to store eight states: “1000”,“1001”, “1010”, “1011”, “1100”, “1101”, “1110”, and “1111”. Thus eightwords are consumed for searching for the destination address of thepacket.

In contrast, the TCAM can store the state “X”. Therefore, it is onlynecessary to store one word “1XXX”. When the bit number of thedestination address is larger, the difference in number of words to beused accordingly increases. Thus, the TCAM can be used to store varioustypes of data, using a small number of words. Actually, the IP packetincludes, in addition to the information about the destination address,various types of information including the IP address of thetransmitter, information regarding communication quality and versionnumber of the IP protocol for example. It is seen from the above thatthe TCAM is considerably useful for a search operation of suchinformation.

The TCAM memory cell and the CAM memory cell are different in cellconfiguration only and are common in search operation using match lineML. Therefore, the configuration described in connection with the firstembodiment is applicable to the TCAM memory cell.

Modification of the Second Embodiment

Regarding the second embodiment discussed above, the description isgiven about how the resistance to soft errors is improved of theassociative memory using SRAM cells as memory cells of memory arrays 2a# and 2 b# in the CAM CMU# and the RAM RMU#. Instead of the SRAM cells,DRAM cells may also be used as TCAM cells.

Referring to FIG. 11 showing CAM memory cells CAMCa# (also referred tosimply as memory cells CAMCa# hereinafter) arranged in a memory array 2a according to a modification of the second embodiment, two memory cellsCAMCa# are provided correspondingly to bit lines BLL0, BLR0 and bitlines BLLm-1, BLRm-1. Since the memory cells CAMCa# are identical inconfiguration, memory cell CAMCa# corresponding to paired bit lines BLL0and BLR0 is described as a representative memory cell.

Since memory cell CAMC#a is similar in configuration to that in FIG. 8described above, the detailed description thereof is not repeated here.Memory cell CAMC#a differs from memory cell CAMCa in FIG. 8. in that thecomplementary bit line is not provided while memory cell CAMCa hascomplementary bit line /BL and corresponding memory cell unit /MCU.Regarding other features described in connection with FIG. 8, the memorycells are similar to each other and the detailed description thereof isnot repeated here.

Thus, memory cell units MCU corresponding respectively to bit line BLLand bit line BLR store respective data that are not complementary to butindependent of each other.

Memory cell units MCU1 and MCU2 are each composed of gate transistor GTand capacitor cell C, namely they are so-called DRAM cells. Therefore,as seen from a comparison with the SRAM cells in FIG. 10 describedabove, the DRAM cell has a smaller number of components, transistors forexample, and thus can be formed with a considerably smaller area ascompared with the SRAM cell. The DRAM cell is highly advantageous interms of increase in degree of integration.

Thus, CAM memory cells CAMC#a of the modification of the secondembodiment can be used to configure an associative memory that isremarkably reduced in chip area as compared with an associative memoryconfigured using SRAM cells.

Further, as described above, since the DRAM cell holds storage data onsense node SN using electric charge of capacitor cell C, the storagedata has to be periodically rewritten, namely refreshed, for maintainingthe data. However, the RAM RMU with the configuration of the presentinvention is constantly refreshed by the cyclic reading and thus therefresh operation by input of a so-called refresh command from anexternal unit is unnecessary. Further, in the CAM CMU as well, datamaintenance is performed similarly by the cyclic reading and the data isrewritten, and thus externally performed refresh operation isunnecessary. As described in connection with the first embodiment, thedata maintenance of the DRAM cells is also transparent to the datasearch operation.

Accordingly, the configuration of the present invention can be used toreduce the chip area and ensure higher data reliability withoutdeterioration in search performance.

Although the present invention has been described and illustrated indetail, it is clearly understood that the same is by way of illustrationand example only and is not to be taken by way of limitation, the spiritand scope of the present invention being limited only by the terms ofthe appended claims.

1. A semiconductor device comprising: a first memory unit including aplurality of memory cell rows that store data for performing a matchingcomparison between input search data and storage data stored in advancecorrespondingly to each memory cell row; a second memory unit storing,correspondingly to each memory cell row, information that iscorresponding to said storage data stored in said first memory unit andcheck data used for checking said storage data; and a control unitdetermining whether said storage data has a error based on said checkdata stored in said second memory unit and correcting said storage datastored in said first memory unit.
 2. The semiconductor device accordingto claim 1, wherein said a control unit includes a check bit additioncircuit which adds said check data to a corrected storage data as saidwrite data and outputs said write data to said second memory unit.